﻿namespace XWord.Common
{
    public interface IAction
    {
        void Action();
    }

    public interface IAction<T>
    {
        void Action(T param);
    }

    public interface IAction<T1, T2>
    {
        void Action(T1 p1, T2 p2);
    }

    public interface IPredicate<T>
    {
        bool Predicate(T param);
    }

    public interface IPredicate<T1, T2>
    {
        bool Predicate(T1 p1, T2 p2);
    }

    public interface IFunc<TOutPut>
    {
        TOutPut Func();
    }

    public interface IFunc<TIn, TOutput>
    {
        TOutput Func(TIn param);
    }

    public interface IFunc<TIn1, TIn2, TOutput>
    {
        TOutput Func(TIn1 p1, TIn2 p2);
    }
}
